/*
typedef enum {
	//! Translate with it's parent
	CC_HONOR_PARENT_TRANSFORM_TRANSLATE =  1 << 0,
	//! Rotate with it's parent
	CC_HONOR_PARENT_TRANSFORM_ROTATE	=  1 << 1,
	//! Scale with it's parent
	CC_HONOR_PARENT_TRANSFORM_SCALE		=  1 << 2,
	//! Skew with it's parent
	CC_HONOR_PARENT_TRANSFORM_SKEW		=  1 << 3,

	//! All possible transformation enabled. Default value.
	CC_HONOR_PARENT_TRANSFORM_ALL		=  CC_HONOR_PARENT_TRANSFORM_TRANSLATE | CC_HONOR_PARENT_TRANSFORM_ROTATE | CC_HONOR_PARENT_TRANSFORM_SCALE | CC_HONOR_PARENT_TRANSFORM_SKEW,

} ccHonorParentTransform;
*/
class CCSprite : public CCNode
{
	void setDirty(bool bDirty);
	bool isDirty(void);

	ccV3F_C4B_T2F_Quad getQuad(void);

	CCRect getTextureRect(void);
	//bool isUsesBatchNode(void);
	bool isTextureRectRotated(void);

	void setAtlasIndex(unsigned int uAtlasIndex);
	unsigned int getAtlasIndex(void);
	//void setUsesSpriteBatchNode(bool bUsesSpriteBatchNode);
	void setTextureAtlas(CCTextureAtlas *pobTextureAtlas);
	CCTextureAtlas* getTextureAtlas(void);
	//void setSpriteBatchNode(CCSpriteBatchNode *pobSpriteBatchNode);
	//CCSpriteBatchNode* getSpriteBatchNode(void);
	//void setHonorParentTransform(ccHonorParentTransform eHonorParentTransform);
	//ccHonorParentTransform getHonorParentTransform(void);
	void setBlendFunc(ccBlendFunc blendFunc);
	ccBlendFunc getBlendFunc(void);

	//CCPoint getOffsetPositionInPixels(void);

	void setDirtyRecursively(bool bValue);
	void ignoreAnchorPointForPosition(bool newValue);
	void setFlipX(bool bFlipX);
	void setFlipY(bool bFlipY);
	bool isFlipX(void);
	bool isFlipY(void);
	void updateColor(void);

	void setOpacity(GLubyte opacity);
	GLubyte getOpacity(void);

	tolua_property__CCOpacity	GLubyte opacity;

	void setColor(ccColor3B color3);
	ccColor3B getColor(void);
	void setOpacityModifyRGB(bool bValue);
	bool isOpacityModifyRGB(void);

	void setTexture(CCTexture2D *texture);
	CCTexture2D* getTexture(void);

	void updateTransform(void);
	//void useSelfRender(void);
        void setTextureRect(CCRect rect);
	//void setTextureRectInPixels(CCRect rect, bool rotated, CCSize size);
	//void useBatchNode(CCSpriteBatchNode *batchNode);
	void setDisplayFrame(CCSpriteFrame *pNewFrame);
	bool isFrameDisplayed(CCSpriteFrame *pFrame);
	//CCSpriteFrame* displayedFrame(void);
	void setDisplayFrameWithAnimationName(const char *animationName, int frameIndex);

	static CCSprite* create(CCTexture2D *pTexture);
	static CCSprite* create(CCTexture2D *pTexture, CCRect rect);
//	static CCSprite* spriteWithTexture(CCTexture2D *pTexture, CCRect rect, CCPoint offset);
	static CCSprite* create(CCSpriteFrame *pSpriteFrame);
	static CCSprite* createWithSpriteFrameName(const char *pszSpriteFrameName);
        static CCSprite* create(const char *pszFileName);
	static CCSprite* create(const char *pszFileName, CCRect rect);
	//static CCSprite* spriteWithBatchNode(CCSpriteBatchNode *batchNode, CCRect rect);
};
